package cn.gene.timeyan.security.sso.service;

import cn.gene.timeyan.common.restful.JsonResult;
import cn.gene.timeyan.pojo.ums.model.User;
import cn.gene.timeyan.pojo.valid.security.dto.UserCodeLoginDTO;
import cn.gene.timeyan.pojo.valid.security.dto.UserPassswordLoginDTO;
import cn.gene.timeyan.pojo.valid.security.dto.validateCodeDTO;
import cn.gene.timeyan.security.sso.pojo.vo.TokenVO;
import cn.gene.timeyan.security.sso.pojo.vo.UserInfoVO;

/**
 * IUserInfoService*
 *
 * @author LWG
 * @date 2022/7/22 16:41
 * @since 1.0.0@gene.cn
 */
public interface IUserInfoService {
    /**
     * 用户登录信息
     *
     * @param authToken
     * @return
     */
    UserInfoVO userInfo(String authToken);

    /**
     * 通过发送验证码到手机验证码登录
     *
     * @param validateCodeDTO
     * @return  0 表示登陆成功， 1 表示非空字段为空， 2 表示找不到用户(不存在或已注销)， 3 表示验证码错误。
     */
    User loginByValidCode(validateCodeDTO validateCodeDTO);

    JsonResult<TokenVO> userNameLogin(UserPassswordLoginDTO userPassswordLoginDTO);

    JsonResult<TokenVO> verificationLogin(UserCodeLoginDTO userCodeLoginDTO);

    void doLogout(String token);
}
